package com.chat.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chat.admin.domain.DTO.ADD.AddAdminDTO;
import com.chat.admin.domain.DTO.AdminDTO;
import com.chat.admin.domain.DTO.EDIT.EditAdminDTO;
import com.chat.admin.domain.VO.AdminVO;
import com.chat.admin.domain.pojo.AdminExcelEnter;
import com.chat.common.entity.Admin;
import com.chat.common.form.ListForm;
import com.chat.common.vo.R;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author weikjie
 * @since 2024-04-14
 */
public interface IAdminService extends IService<Admin> {
    /**
     * 查询管理员列表
     * @param adminDTO
     * @return
     */
    R<ListForm<AdminVO>> getAdminList(AdminDTO adminDTO);

    /**
     * 添加一个管理员账户
     * @param addAdminDTO
     * @return
     */
    R addOneAdmin(AddAdminDTO addAdminDTO);

    /**
     * AdminExcelEnter转成Admin
     * @param cachedDataList
     */
    void convertToAdmins(List<AdminExcelEnter> cachedDataList);

    /**
     * Excel批量添加管理员账户
     * @param file
     * @return
     */
    R<?> addExcelAdmin(MultipartFile file);

    /**
     * 禁用管理员账号
     * @param userID
     * @return
     */
    R<?> DisableAccount(Long userID);

    /**
     * 启用管理员账号
     * @param userID
     * @return
     */
    R<?> EnableAccount(Long userID);

    /**
     * 修改管理员账号
     * @param editAdminDTO
     * @return
     */
    R updateAdmin(EditAdminDTO editAdminDTO);
}
